The present invention relates to the processing of extended transactions in a client-server environment.
A business transaction is a self-contained business deal, for example, buying a theatre ticket. Some business transactions are simple and short-lived. However, many are not, involving multiple actions that take place over an extended period, such as selling a holiday or a house. Such transactions will be referred to as xe2x80x9cextended transactionsxe2x80x9d.
Traditional transaction processing systems based on large databases and telecommunications networks are very well established. Such systems enable end-users to initiate and complete short business transactions via a terminal network with, for example, a bank, to make payments into or out of a bank account or simply to make an enquiry as to the balance. Such transactions are usually relatively short lived (of the order of minutes) and either complete or fail within that time span. A communication session is established for the duration of the transaction and, when it is finished, communication is terminated. There is no concept of suspending the transaction indefinitely and resuming at a later time or date although, while a transaction is active, necessary state information is maintained to enable progression of the transaction and to permit recovery in the event of failure.
Traditional transaction processing systems have been implemented not only as mainframe data processor complexes with a network of linked terminals, acting as input-output devices with no intelligence, but also as client-server (distributed) systems in which a limited amount of the data processing may be done at a local client computer, which calls further large programs in a server computer to complete the processing action. The client often handles input and output of data to the server and includes the terminal which the end-user actually uses. It may handle aspects of data conversion and translation between interfaces which a simple terminal could not handle.
More recently, the Internet has allowed a massive amount of information to be accessed by individual computer users connected by so-called web browsers to web servers maintained by information service providers. These web browsers are general purpose client computers designed in accordance with established protocols, such as HTTP, to transfer information in the format known as HTML. However, the HTTP protocol is stateless so that a web browser""s communications with the web server terminate after each HTML transfer and the server does not preserve knowledge of the previous connection. This does not lend itself, therefore, to transaction processing.
Nevertheless, various ways of maintaining or retrieving some state information about the current progress of a transaction have been implemented in order to allow transaction processing to be performed over the Internet. State information may be hidden in HTML forms and passed back and forth between client and server so that the server can associate the new input from the client with a transaction whose state it has saved. Another known system, provided by Netscape Communications Corp. in connection with their Netscape Navigator browser system (xe2x80x9cNetscapexe2x80x9d is a trademark of Netscape Communications, Inc.) involves the use of what are known as xe2x80x9ccookiesxe2x80x9d, which allow some state information to be preserved by appending cookies to server responses. Another method, described in our publication pending European patent application no. 0812088 involves embedding state information in xe2x80x9ccontinuationsxe2x80x9d (hyperlinks) returned by the server to a client.
However, these known ways of introducing state information only allow the processing of a transaction to continue where the client retains this information from the server and is able to pass it back to resume the transaction. It does not allow for the complete disconnection of a client and loss of the relevant state information such as might occur in a long-running business transaction. Nor does it allow for resumption of the interrupted transaction from another client.
A method of processing several types of extended transaction for an end-user in a client-server data processing system including a server and a plurality of clients, extended transactions being transactions made up of component transactional interactions with an end-user towards a common goal the processing of which can be suspended for an indefinite period and resumed at a later time, each client being capable of establishing communication with said server for processing said end-user transactional interactions; the method comprising the steps in the server of: initially receiving an end-user identifier from one of said clients; presenting a menu of said several types of extended transaction to said client for selection; receiving a selection of an extended transaction from said client; commencing processing of said selected extended transaction; storing state information indicative of the progress of said selected transaction; associating said end-user identifier with said state information for said selected transaction; ceasing processing of said selected transaction following cessation of communication with said one client; following cessation of processing of said transaction, receiving said end-user identifier for a second time from another of said clients; in response to receipt of said identifier for a second time, presenting all current extended transactions for that end-user to said other client for a second selection by said client of one of said extended transactions; and in response to said second selection, resuming processing of said transaction from a point determined by said stored state information for the selected transaction.
According to a second aspect, the invention also provides a computer program for performing the above method according to the invention.
According to a third aspect, the invention also provides a server for processing several types of extended transaction for an end-user in a client-server data processing system including a plurality of clients, extended transactions being transactions made up of component transactional interactions with an end-user towards a common goal the processing of which can be suspended for an indefinite period and resumed at a later time, each client being capable of establishing communication with said server for processing said end-user transactional interactions; the server comprising: transaction processing means; and means for connecting clients to the transaction processing means to enable communication therebetween; the transaction processing means being responsive to a first communication from one of said clients of an end-user identifier to present a menu of said several types of extended transaction to said client for selection, and in response to selection by said client of an extended transaction to start processing the selected extended transaction and to generate state information indicative of the progress of the selected extended transaction; the server further comprising a repository for storing said transaction state information in association with said end-user identifier; the transaction processing means being responsive, following cessation of communication with said one client to cease processing the selected transaction, and being responsive to receipt of said end user identifier for a second time from another of said clients to present all current extended transactions for that end-user to said other client for a second selection by said other client of one of said extended transactions; and in response to said second selection, resuming processing of said transaction from a point determined by said stored state information for the selected transaction in said repository.
Thus, by using the end-user identifier, such as a name or password, previously started transactions of that end-user can be identified and processing resumed from a point indicated by the stored state information in the repository. The stored state information may correspond to the state at the time communication between client and server ceased or to a later state reached as a result of the transaction processing means continuing to process the transaction asynchronously until such time as further client input is required.
A major advantage of the invention is that it permits extended transactions to be resumed from a different client from the client which initiated the transaction. This corresponds to the real world in which an end-user may be in a physically different location with different equipment when wanting to resume the transaction.
The invention also allows end-users to work on multiple transactions. In response to a client communicating the end-user identifier, the server presents all current transactions for that end-user to the client which identifies an end-user selected transaction to the server for processing.
Preferably, the association of stored state information with an end-user is achieved by the generation of a token for the selected extended transaction and then providing the token following the second selection by the other client to enable resumption of processing of that transaction from its stored state.
Additionally, as the extended transaction involves multiple interactions between server and client and the client has no ability to store state information, it is a preferred feature of the invention that a token is generated, uniquely identifying the transaction and also being identified with its state information. This token is passed back from server to client with a response requiring end-user interaction and then passed back to the server with the end-user response so that processing of the transaction is resumed from its current state, as defined by the respective state information.
In a further preferred embodiment, not only does the invention allow resumption of processing from another client but it also allows that client to be of a different type. To achieve this, the server provides information for sending to the client in client-neutral form and this is later converted to client specific form for presentation to the end-user by the new type of client.
The client neutral information can include both business data and a generic display format name. In this case, the invention provides for mapping the generic display format name into a client specific template for displaying said business data.